home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 016 / herc.arc / HGR.C < prev    next >
Encoding:
C/C++ Source or Header  |  1986-07-11  |  4.7 KB  |  206 lines

  1.  
  2. #define LINT_ARGS
  3. #include "user.h"
  4. #include "graph.h"
  5. #include <stdlib.h>
  6. #include <stdio.h>
  7. #include <dos.h>
  8.  
  9. void delay();
  10.  
  11. main(argc, argv, envp)
  12.   int argc;
  13.   char *argv[], *envp[];
  14. {
  15.     unsigned i, z;
  16.     int j, k, x, y, x1, y1, x2, y2;
  17.     char chr;
  18.  
  19.     kbclr();
  20.     gmode();
  21.   
  22.   while(kbkey() != 1) {
  23.     delay();
  24.     for(x = 0, y = 173; x < 720; x++)
  25.         gset(x,y);
  26.     for(x = 359, y = 0; y < 348; y++)
  27.         gset(x,y);
  28.     for(x = 0, y = 0; x < 720; x++)
  29.         gset(x,y);
  30.     for(x = 0, y = 0; y < 348; y++)
  31.         gset(x,y);
  32.     for(x = 0, y = 347; x < 720; x++)
  33.         gset(x,y);
  34.     for(x = 719, y = 0; y < 348; y++)
  35.         gset(x,y);
  36.     delay();
  37.  
  38.     for(x = 0, y = 173; x < 720; x++)
  39.         grset(x,y);
  40.     for(x = 359, y = 0; y < 348; y++)
  41.         grset(x,y);
  42.     for(x = 0, y = 0; x < 720; x++)
  43.         grset(x,y);
  44.     for(x = 0, y = 0; y < 348; y++)
  45.         grset(x,y);
  46.     for(x = 0, y = 347; x < 720; x++)
  47.         grset(x,y);
  48.     for(x = 719, y = 0; y < 348; y++)
  49.         grset(x,y);
  50.  
  51.     delay();
  52.  
  53.     gline(0,0,719,0);
  54.     gline(0,0,0,347);
  55.     gline(0,347,719,347);
  56.     gline(719,0,719,347);
  57.     gline(0,173,719,173);
  58.     gline(359,0,359,347);
  59.     gline(0,87,719,87);
  60.     gline(0,260,719,260);
  61.     gline(180,0,180,347);
  62.     gline(539,0,539,347);
  63.     gline(0,0,719,347);
  64.     gline(0,347,719,0);
  65.  
  66.     delay();
  67.     glinr(0,0,719,0);
  68.     glinr(0,0,0,347);
  69.     glinr(0,347,719,347);
  70.     glinr(719,0,719,347);
  71.     glinr(0,173,719,173);
  72.     glinr(359,0,359,347);
  73.     glinr(0,87,719,87);
  74.     glinr(0,260,719,260);
  75.     glinr(180,0,180,347);
  76.     glinr(539,0,539,347);
  77.     glinr(0,0,719,347);
  78.     glinr(0,347,719,0);
  79.     delay();
  80.  
  81.     gbox(0,0,719,347);
  82.     delay();
  83.     gcls();
  84.  
  85.     delay();
  86.     gbox(0,0,180,87);
  87.     gbox(539,0,719,87);
  88.     gbox(0,260,180,347);
  89.     gbox(539,260,719,347);
  90.  
  91.     gfilv(0,0,180,87);
  92.     gfilh(539,0,719,87);
  93.     gfilh(0,260,180,347);
  94.     gfilv(539,260,719,347);
  95.  
  96.     delay();
  97.     gfclr(0,0,180,87);
  98.     gfclr(539,0,719,87);
  99.     gfclr(0,260,180,347);
  100.     gfclr(539,260,719,347);
  101.  
  102.     delay();
  103.     gboxr(0,0,180,87);
  104.     gboxr(539,0,719,87);
  105.     gboxr(0,260,180,347);
  106.     gboxr(539,260,719,347);
  107.  
  108.     delay();
  109.     gmode();
  110.     delay();
  111.  
  112.     gline(0,0,719,0);
  113.     gline(0,0,0,347);
  114.     gline(0,347,719,347);
  115.     gline(719,0,719,347);
  116.     gline(0,173,719,173);
  117.     gline(359,0,359,347);
  118.     gline(0,87,719,87);
  119.     gline(0,260,719,260);
  120.     gline(180,0,180,347);
  121.     gline(539,0,539,347);
  122.     gline(0,0,719,347);
  123.     gline(0,347,719,0);
  124.  
  125.     delay();
  126.     gfclr(0,0,180,87);
  127.     gfclr(539,0,719,87);
  128.     gfclr(0,260,180,347);
  129.     gfclr(539,260,719,347);
  130.     delay();
  131.     gfill(0,0,180,87);
  132.     gfilv(539,0,719,87);
  133.     gfilh(0,260,180,347);
  134.     gfill(539,260,719,347);
  135.  
  136.     delay();
  137.     gmode();
  138.  
  139.     for(i = 0; i < 3; i++) {
  140.       for(x1=x2=360,y1=y2=174;(x2 < 720)&&(y2 < 348);x1-=12,x2+=12,y1-=6,y2+=6)
  141.             gbox(x1, y1, x2, y2);
  142.  
  143.       for(x1=x2=360,y1=y2=174;(x2 < 720)&&(y2 < 348);x1-=12,x2+=12,y1-=6,y2+=6)
  144.             gboxr(x1, y1, x2, y2);
  145.       }
  146.       for(x1=0,y1=154,x2=40,y2=194; x2 < 719;x1+=5,x2+=5) {
  147.             gbox(x1, y1, x2, y2);
  148.             for(i = 0; i < 300; i++) ;
  149.             gboxr(x1, y1, x2, y2);
  150.       }
  151.       for(x1=0,y1=170,x2=15,y2=178; x2 < 719;x1+=10,x2+=10) {
  152.             gfill(x1, y1, x2, y2);
  153.             for(i = 0; i < 250; i++) ;
  154.             gboxr(x1, y1, x2, y2);
  155.             gfclr(x1, y1, x2, y2);
  156.       }
  157.       for(x1=0,y1=154,x2=40,y2=194; x2 < 380;x1+=5,x2+=5) {
  158.             gbox(x1, y1, x2, y2);
  159.             for(i = 0; i < 300; i++) ;
  160.             gboxr(x1, y1, x2, y2);
  161.       }
  162.       for(x1=x2=360,y1=y2=174;(x2 < 720)&&(y2 < 348);x1-=12,x2+=12,y1-=6,y2+=6)
  163.             gbox(x1, y1, x2, y2);
  164.  
  165.     gcls();
  166.  
  167.       for(a_r = .333333; a_r < 1.1; a_r += .333333) {
  168.         for(j = 0; j < 121; j += 30) {
  169.             gcirc(360, 174, (unsigned long)j);
  170.             grcirc(360, 174, (unsigned long)j);
  171.         }
  172.         for(j = 0; j < 121; j += 20)
  173.             gcirc(360, 174, (unsigned long)j);
  174.         for(j = 0; j < 121; j += 20)
  175.             grcirc(360, 174, (unsigned long)j);
  176.       }
  177.  
  178.     a_r = .666666;
  179.   }
  180.  
  181.     gset(0,0);    
  182.     grset(200,40);
  183.     j = gpnt(0,0);
  184.     k = gpnt(200,40);
  185.  
  186.     cls();
  187.     delay();
  188.     printf("On  point = %x\n", j);
  189.     printf("Off point = %x\n\n", k);
  190.  
  191.     printf("        H E R C U L E S\n");
  192.     printf("Graphics demonstration complete.\n\n");
  193.     printf("\nWritten on the Microsoft C compiler\n");
  194.     printf("and  the Microsoft Macro Assembler.\n");
  195.     printf(" B Y    B I L L    D I C K S O N\n\n");
  196. }
  197.  
  198. void delay()
  199. {
  200.     unsigned i, j;
  201.  
  202.     for(i = 0; i < 0x3fff; i++)
  203.         ;
  204. }
  205.  
  206.